package com.qixiaobao.nondirect.invoice.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description 非直投发票管理 - 待开票 - 费用详情
 * @Author yangxm
 * @Date 2025/7/4 15:06
 */
@Data
@ContentRowHeight(20)
@HeadRowHeight(20)
@ColumnWidth(25)
@ExcelIgnoreUnannotated
public class NonDirectWaitInvoiceChargeVO implements Serializable {
    private static final long serialVersionUID = 8297640958052532365L;

    private Long insureId;
    private Long chargeId;
    private Long insureFeeId;

    @ColumnWidth(10)
    @ExcelProperty("序号")
    private Integer index;
    /** 方案ID */
    @ExcelProperty("方案ID")
    private Long customerMealId;
    /** ID号 */
    @ExcelProperty("ID号")
    private Long detailId;
    /** 订单编号 */
    @ExcelProperty("订单编号")
    private String qxbOrderNo;
    /** 保单号 */
    @ExcelProperty("保单号")
    private String insureNo;
    /** 供应商ID */
    private Long supplyId;
    /** 供应商名称 */
    private String supplyName;
    /** 供应商简称 */
    @ExcelProperty("供应商简称")
    private String supplyShortName;
    /** 匹配后供应商简称 */
    @ExcelProperty("匹配后供应商简称")
    private String toSupplyShortName;
    /** 客户名称 */
    @ExcelProperty("客户名称")
    private String customerName;
    /** 被保人 */
    @ExcelProperty("被保险人")
    private String insurant;
    /** 付款单位 */
    private Long payCompanyId;
    @ExcelProperty("付款单位")
    private String payCompanyName;
    /** 实际付款单位 */
    private Long actualPayCompanyId;
    @ExcelProperty("实际付款单位")
    private String actualPayCompanyName;
    /** 套餐名称 */
    private String mealName;
    @ExcelProperty("套餐名称")
    private String mealNameVal;
    /** 伤残比例 */
    private String maimRatio;
    @ExcelProperty("伤残比例")
    private String maimRatioVal;
    /** 职业类别 */
    private String jobType;
    @ExcelProperty("职业类别")
    private String jobTypeVal;
    /** 投保周期 */
    private String insurePeriod;
    private String insurePeriodVal;
    /** 生效起期 */
    @ExcelProperty("生效起期")
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date gurantBeginTime;
    /** 生效止期 */
    @ExcelProperty("生效止期")
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date gurantEndTime;
    /** 推送时间 */
    @ExcelProperty("推送时间")
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date pushTime;
    /** 增员人数 */
    private Integer addNum;
    /** 减员人数 */
    private Integer minusNum;
    /** 投保人数 */
    @ExcelProperty("投保人数")
    private String insurePerson;
    /** 作废状态 */
    private Integer abandonFlag;
    @ExcelProperty("作废状态")
    private String abandonFlagVal;
    /** 保险费/人 */
    @ExcelProperty("保险费/人")
    private BigDecimal copeInsureFeePrice;
    /** 费用总计 */
    @ExcelProperty("费用总计")
    private BigDecimal copeInsureFee;
    /** 手续费率 */
    @ExcelProperty("手续费率")
    private BigDecimal serviceRate;
    /** 财务计入 */
    private String financeReckon;
    @ExcelProperty("财务计入")
    private String financeReckonVal;
    /** 保费结算 创建时间 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date createTime;
    /** 保费结算 支付时间 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date paymentTime;
    /** 保单结算时间 */
    @ExcelProperty("保单结算时间")
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date insureFeeSettleTime;
    /** 回单金额 */
    @ExcelProperty("回单金额")
    private String transAmounts;
    /** 回单编号 */
    @ExcelProperty("回单编号")
    private String billNums;
    /** 付款时间 */
    @ExcelProperty("付款日期")
    private String transDateTimes;
    /** 发票号码 */
    @ExcelProperty("发票号码")
    private String invoiceNums;
    /** 开票日期 */
    @ExcelProperty("开票日期")
    private String invoiceDates;
    /** 发票金额 */
    @ExcelProperty("发票金额")
    private String invoiceMoneys;
}
